查看原文
其他

简单apk脱壳工具源码

skyun 看雪学院 2019-05-26



0x00 序1


刚看f8大佬开源了自己的脱壳机(能脱下函数抽取)。敬佩之心油然而生。瞬间也想开源一下我写的垃圾代码 来骗几个赞:之前也写过dalvik版的脱壳机 可惜不能脱函数抽取 不过改一下应该可以吧。



0x01 序2


这个软件 涉及到的姿势有动态解析appminifest,xposed 和ndk 。ndk其实就是动态解析dex。



0x02 序3


代码这东西好久不看真的会忘。这个代码是8个月前写的。写的时候感觉印象很深。现在不让看代码 描述一下。真是描述不了。代码开源出来,希望有用。



0x03 工具介绍


本工具是一个apk软件,打开后listview显示手机上安装的所有用户apk(图标➕apk名字),然后可以选择需要脱壳apk,然后再运行需要脱壳apk。即可完成脱壳。

 

代码实现:

 

1. 解析选择apk的apkminifest,获取其包名,ApplicationName,MainActityName。

 

2. Xposed hook android.content.ContextWrapper attachBaseContext 得到壳的classloder

 

3. 根据classloder继续hook真正类的oncreate。

 

4. 继续根据classloader获取内存中的所有cookie。

 

5. 继续调用jni。根据cookie能转换成DexFile,然后其实就是解析dex文件了。

 

6. 在内存其实他的指向都是完整的。只不过没有在连续的地方。dump下来的也就不完整。那么我就分部dump。1。classdef之前的,2classdef之后的,3classdef4.classdata,5opcode然后修改指向组合。
项目难点:得完全掌握dex文件格式,才能分模块dump各个段,然后组合成dex

 

解析method的截图




0x04 代码


具体代码在github


https://github.com/skyun1314/hook_and_parse_dex2/tree/master/app




看雪ID:skyun 

bbs.pediy.com/user-630232



本文由看雪论坛 skyun 原创

转载请注明来自看雪社区




热门技术文章推荐:





戳原文,看看大家都是怎么说的?

    您可能也对以下帖子感兴趣

    文章有问题?点此查看未经处理的缓存